#include <assert.h>
#include <stdio.h>
#include <sys/time.h>
#include <time.h>

#include "server.h"

/** A template for the HTML page this module generates.  */ 
static char* page_template = 
"<html>\n"
" <head>\n"
"  <meta http-equiv=\"refresh\"content=\"5\">\n"
" </head>\n"
" <body>\n"
"  <p>The current time is %s.</p>\n"
" </body>\n"
"</html>\n";

void module_generate (int fd) {
    struct timeval tv;
    struct tm* ptm;
    char time_string[40];
    FILE* fp;

    /** Obtain the time of day, and convert it to a tm struct.  */
    gettimeofday (&tv, NULL);
    ptm = localtime (&tv.tv_sec);
    /** Format the date and time, down to a single second.  */
    strftime (time_string, sizeof (time_string), "%H:%M:%S", ptm);
    /** Create a stream corresponding to the client socket file
        descriptor.  */
    fp = fdopen (fd, "w");
    assert (fp != NULL);
    /** Generate the HTML output.  */
    fprintf (fp, page_template, time_string);
    /** All done; flush the stream.  */
    fflush (fp);
}

